Some conventional methods for backing up data may involve creating a backup based on a snapshot of one or more volumes of a computing system. For example, a conventional, volume-based backup program may create a base (or full) backup of a volume based on an initial snapshot of the volume. When blocks of the volume change, the conventional, volume-based backup program may create an incremental backup of the volume (as opposed to an additional full backup) by: 1) taking a new snapshot, 2) identifying each block (e.g., each sector or cluster) of the volume that has changed since the last snapshot, and then 3) capturing each of the changed blocks.
In some situations, developers of a backup program may wish to integrate their program with one or more third-party snapshot providers in order to leverage specialized features or advantages offered by the third-party snapshot provider. For example, developers of a software-based backup program may wish to utilize and support snapshots provided by hardware-based and off-host snapshot providers in order to take advantage of the performance benefits offered by hardware-based and off-host snapshots.
Unfortunately, conventional backup programs may be unable to utilize or fully support third-party snapshots since conventional backup programs are typically unable to identify the exact point when a third-party snapshot is created. For example, because many third-party snapshot providers (such as hardware-based and off-host snapshot providers) do not track or identify the blocks of a volume that have changed since the creation of a prior snapshot, conventional backup programs are typically unable to create incremental backups from third-party snapshots. As such, conventional volume-based backup programs may only be able to utilize and support creating full backups (as opposed to incremental backups) from snapshots provided by third-party snapshot providers.